package com.iims.market.service;

import com.iims.market.vo.GroupContractSearchQuery;
import com.iims.market.domain.Contract;
import com.iims.market.vo.ContactRowVo;
import com.iims.market.vo.ContractContactorVo;
import com.iims.market.vo.ContractStats;

import java.util.List;

/**
 * 合同
 *
 * @author fanpei
 * @date 2021/6/17 15:00
 */
public interface IContractService {
    /**
     * 获取合同列表
     */
    List<ContactRowVo> selectContractList(Contract contract);

    /**
     * 获取当前条件统计信息
     * @return
     */
    ContractStats selectContractStat(Contract contract);

    /**
     * 获取合同列表[分组条件搜索]
     */
    List<ContactRowVo> selectContractListByGroup(GroupContractSearchQuery groupSearchQuery);

    /**
     * 获取当前条件统计信息[分组条件搜索]
     *
     * @param groupSearchQuery
     * @return
     */
    ContractStats selectContractStatsByGroup(GroupContractSearchQuery groupSearchQuery);

    /**
     * 获取合同详情
     */
    Contract selectDetailById(Long contractId);

    int insertContract(Contract contract);

    int updateContract(Contract contract);

    int deleteContractById(Long contractId);

    /**
     * 更新合同归档信息
     *
     * @param contract
     */
    int fillingContract(Contract contract);

    /**
     * @param contractId
     * @return
     */
    ContractContactorVo selectContractContator(Long contractId);

}
